package com.bocloud.cmp.dao.app;

import java.util.List;
import java.util.Map;

import com.bocloud.cmp.entity.app.resource.ApplicationSoftwareInfo;
import com.bocloud.common.model.Param;

/**
 * 
 * @author zjm
 * @date 2017年3月18日
 */
public interface ApplicationSoftwareInfoDao {
	
	/**
	 * 保存
	 * @param applicationSoftwareInfo
	 * @return
	 * @throws Exception
	 */
	public boolean saveApplicationSoftwareInfo(ApplicationSoftwareInfo applicationSoftwareInfo) throws Exception;
	/**
	 * 删除
	 * @param applicationSoftwareInfo
	 * @return
	 * @throws Exception
	 */
	public boolean deleteApplicationSoftwareInfo(ApplicationSoftwareInfo applicationSoftwareInfo) throws Exception;

	/**
	 * 修改
	 * @author zjm
	 * @date 2017年5月12日
	 *
	 * @param applicationSoftwareInfo
	 * @return
	 * @throws Exception
	 */
	public boolean updateApplicationSoftwareInfo(ApplicationSoftwareInfo applicationSoftwareInfo) throws Exception;
	
	/**
	 * 根据应用和镜像获取应用镜像中间表
	 * @author zjm
	 * @date 2017年4月9日
	 *
	 * @param appId
	 * @param softwareId
	 * @return
	 * @throws Exception
	 */
	public ApplicationSoftwareInfo getByAppIdAndSoftwareId(Long appId, Long softwareId) throws Exception;
	

	/**
	 * 根据id获取应用镜像中间表
	 * @author zjm
	 * @date 2017年4月9日
	 *
	 * @param appId
	 * @param softwareId
	 * @return
	 * @throws Exception
	 */
	public ApplicationSoftwareInfo get(Long id) throws Exception;
	
	/**
	 * 根据应用获取应用镜像
	 * @author zjm
	 * @date 2017年4月9日
	 *
	 * @param appId
	 * @param softwareId
	 * @return
	 * @throws Exception
	 */
	public List<ApplicationSoftwareInfo> getByAppId(Long appId) throws Exception;

	public int count(List<Param> params) throws Exception;

	public List<ApplicationSoftwareInfo> list(int page, int rows, List<Param> params, Map<String, String> sorter)
			throws Exception;
}
